// $Id: names.hpp 2 2009-09-02 08:47:42Z joseph2002 $
/*
 * Copyright 2009 Joseph Wu
 * Distributed under the Boost Software License, Version 1.0.
 * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 *
 * For more information, see http://xpcomplus.sourceforge.net
 */

#ifndef XPGEN_NAMES_HPP
#define XPGEN_NAMES_HPP

// Names used in code generation
#define N_xpidl "xpidl"

#define N_nsISupports "nsISupports"
#define N_nsIMemory "nsIMemory"
#define N_nsIRecyclingAllocator "nsIRecyclingAllocator"

#define N_xpcom "xpcom"
#define N_xpcomplus "xpcomplus"
#define N_proxy "proxy"
#define N_impl "impl"
#define N_base "base"

#define N_void "void"
#define N_int8_t "int8_t"
#define N_int16_t "int16_t"
#define N_int32_t "int32_t"
#define N_int64_t "int64_t"
#define N_uint8_t "uint8_t"
#define N_uint16_t "uint16_t"
#define N_uint32_t "uint32_t"
#define N_uint64_t "uint64_t"
#define N_float "float"
#define N_double "double"
#define N_bool_t "bool_t"
#define N_char "char"
#define N_wchar "wchar"
#define N_uuid "uuid"
#define N_string "string"
#define N_wstring "wstring"
#define N_ustring "ustring"
#define N_result_t "result_t"
#define N_size_t "size_t"

#define N_bool "bool"
#define N_true "true"
#define N_false "false"

#define N_interface "interface"
#define N_interface_proxy "interface_proxy"
#define N_interface_impl "interface_impl"
#define N_ref_ptr "ref_ptr"
#define N_noref_ptr "noref_ptr"
#define N_array "array"
#define N_ptr_array "ptr_array"

#define N_base_type "base_type"
#define N_impl_type "impl_type"
#define N_type "type"
#define N_type_info "type_info"

#define N_in "in"
#define N_out "out"
#define N_inout "inout"
#define N_size "size"
#define N_length "length"
#define N_size2 "size2"
#define N_isize2 "isize2"
#define N_2 "2"

#define N_pstr "pstr"
#define N_pwstr "pwstr"
#define N_ptr "ptr"
#define N_uuid_ptr "uuid_ptr"

#define N_XPCOM_ASSERT "XPCOM_ASSERT"
#define N_XPCOM_DISABLE_METHOD_ARG_CHECKING "XPCOM_DISABLE_METHOD_ARG_CHECKING"
#define N_XPCOM_DISABLE_TYPEDEFS "XPCOM_DISABLE_TYPEDEFS"
#define N_XPCOM_IMETHOD "XPCOM_IMETHOD"
#define N_XPCOM_IMETHOD_ "XPCOM_IMETHOD_"
#define N_XPCOM_IMETHODIMP "XPCOM_IMETHODIMP"
#define N_XPCOM_IMETHODIMP_ "XPCOM_IMETHODIMP_"
#define N_XPCOM_IMPL_RAW_METHOD_ACCESS "XPCOM_IMPL_RAW_METHOD_ACCESS"
#define N_XPCOM_IMPL_METHOD_BEGIN "XPCOM_IMPL_METHOD_BEGIN"
#define N_XPCOM_IMPL_METHOD_END "XPCOM_IMPL_METHOD_END"
#define N_XPCOM_LIKELY "XPCOM_LIKELY"
#define N_XPCOM_METHOD "XPCOM_METHOD"
#define N_XPCOM_METHOD_ "XPCOM_METHOD_"
#define N_XPCOM_NO_VTABLE "XPCOM_NO_VTABLE"
#define N_XPCOM_SCRIPTABLE "XPCOM_SCRIPTABLE"
#define N_XPCOM_STATIC_CONSTANT "XPCOM_STATIC_CONSTANT"
#define N_XPCOM_UNLIKELY "XPCOM_UNLIKELY"

#define N_XPCOM_TYPE_INFO_DECL "XPCOM_TYPE_INFO_DECL"
#define N_XPCOM_TYPE_INFO_ID "XPCOM_TYPE_INFO_ID"
#define N_XPCOM_TYPE_INFO_CONTRACTID "XPCOM_TYPE_INFO_CONTRACTID"
#define N_XPCOM_TYPE_INFO_NAME "XPCOM_TYPE_INFO_NAME"

#define N_NS_ERROR_NULL_POINTER "NS_ERROR_NULL_POINTER"
#define N_NS_OK "NS_OK"

#define N_TEMPL_Base "_Base"
#define N_TEMPL_Class "_Class"
#define N_TEMPL_T "T"

#define N_TYPE_base_type "base_type"

#define N_FUNC_base "_base"
#define N_FUNC_commit "commit"
#define N_FUNC_object "_object"
#define N_FUNC_throw_exception "throw_exception"
#define N_FUNC_typeid_of "typeid_of"

#define N_PARAM_arg "_arg"
#define N_PARAM_attr "_attr"
#define N_PARAM_retval "_retval"

#define N_PREFIX_get "get"
#define N_PREFIX_set "set"
#define N_PREFIX_raw "raw"

#define N_SUFFIX_array "_array"
#define N_SUFFIX_impl "_impl"
#define N_SUFFIX_nptr "_nptr"
#define N_SUFFIX_ptr "_ptr"

#define N_INC_array                 "<xpcom/array.hpp>"
#define N_INC_array_fwd             "<xpcom/array_fwd.hpp>"
#define N_INC_assert                "<xpcom/assert.hpp>"
#define N_INC_exception             "<xpcom/exception.hpp>"
#define N_INC_interface             "<xpcom/interface.hpp>"
#define N_INC_ptr                   "<xpcom/ptr.hpp>"
#define N_INC_ptr_array             "<xpcom/ptr_array.hpp>"
#define N_INC_result_code           "<xpcom/result_code.hpp>"
#define N_INC_string                "<xpcom/string.hpp>"
#define N_INC_ustring               "<xpcom/ustring.hpp>"
#define N_INC_xpcom                 "<xpcom/xpcom.hpp>"
#define N_INC_xpcom_impl            "<xpcom/xpcom_impl.hpp>"
#define N_INC_proxy_array           "<xpcom/proxy/array.hpp>"
#define N_INC_proxy_bool            "<xpcom/proxy/bool.hpp>"
#define N_INC_proxy_interface_proxy "<xpcom/proxy/interface_proxy.hpp>"
#define N_INC_proxy_pstring         "<xpcom/proxy/pstring.hpp>"
#define N_INC_proxy_ptr             "<xpcom/proxy/ptr.hpp>"
#define N_INC_proxy_uuid_ptr        "<xpcom/proxy/uuid_ptr.hpp>"
#define N_INC_impl_array            "<xpcom/impl/array.hpp>"
#define N_INC_impl_bool             "<xpcom/impl/bool.hpp>"
#define N_INC_impl_exception        "<xpcom/impl/exception.hpp>"
#define N_INC_impl_interface_impl   "<xpcom/impl/interface_impl.hpp>"
#define N_INC_impl_pstring          "<xpcom/impl/pstring.hpp>"
#define N_INC_impl_ptr              "<xpcom/impl/ptr.hpp>"
#define N_INC_impl_ptr_array        "<xpcom/impl/ptr_array.hpp>"
#define N_INC_impl_uuid_ptr         "<xpcom/impl/uuid_ptr.hpp>"

#endif // XPGEN_NAMES_HPP
